package com.bsy.framework.task

import android.app.Application
import com.bsy.framework.BuildConfig
import com.bsy.stater.task.Task
import com.xiaojinzi.component.Component
import com.xiaojinzi.component.Config
import com.xiaojinzi.component.impl.application.ModuleManager

/**
 * Created by Sincerity on 2024/3/5.
 * Copyright
 * 描述：
 */
class RouterTask(private val application: Application) : Task() {
    //异步线程执行的Task在被调用await的时候等待
    override fun needWait(): Boolean {
        return true
    }

    //依赖某些任务，在某些任务完成后才能执行
    override fun dependsOn(): MutableList<Class<out Task>> {
        val tasks = mutableListOf<Class<out Task?>>()
        tasks.add(APPHelperTask::class.java)
        return tasks
    }

    //执行任务，任务真正的执行逻辑
    override fun run() {
        Component.init(BuildConfig.DEBUG, Config.with(application).build())
        // 注册其他业务模块,注册的字符串是上面各个业务模块配置在 build.gradle 中的 HOST
        ModuleManager.getInstance().registerArr("component1", "component2", "user", "help")
        // 让框架在 Debug 的时候检查.
        if (BuildConfig.DEBUG) {
            // 框架还带有检查重复的路由和重复的拦截器等功能,在 `debug` 的时候开启它
            Component.check()
        }
    }
}